package cn.doitedu.datagen.beans;

import org.apache.commons.lang3.RandomUtils;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/***
 * @author hunter.d
 * @qq 657270652
 * @wx haitao-duan
 * @date 2021/12/15
 **/
public class StaticResources {

    private static List<String> gps;

    public static String getGps() throws Exception {
        if (gps == null) {
            gps = new ArrayList<String>();
            InputStream in = StaticResources.class.getClassLoader().getResourceAsStream("gps.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String line = null;
            while ((line = br.readLine()) != null) {
                gps.add(line);
            }
            br.close();
        }
        return gps.get(RandomUtils.nextInt(0, gps.size()));
    }

    private static String[] netTypes = {"4G", "5G", "WIFI"};

    public static String getNetType() {
        return netTypes[RandomUtils.nextInt(0, netTypes.length)];
    }

    private static String[] appIds = {"cn.doitedu.jobs.JobHunter", "cn.doitedu.study.Yiee"};

    public static String getAppId() {
        return appIds[RandomUtils.nextInt(0, appIds.length)];
    }

    private static String[] appVersions = {"6.8", "6.9", "7.0", "7.2", "7.5", "7.6", "8.0", "8.1", "8.3", "9.2"};

    public static String getAppVersion() {
        return appVersions[RandomUtils.nextInt(0, appVersions.length)];
    }

    private static String[] carriers = {"中国联通", "中国电信", "中国移动", "小米移动", "360移动", "爱奇艺移动", "京东移动", "阿里移动"};

    public static String getCarrier() {
        return carriers[RandomUtils.nextInt(0, carriers.length)];
    }

    private static String[] osNames = {"android", "apple", "windows", "blackberry"};

    public static String getOsName() {
        return osNames[RandomUtils.nextInt(0, osNames.length)];
    }

    private static String[] osVersions = {"5.0", "6.0", "7.0", "7.2", "7.5", "8.0", "8.3", "8.6", "9.0", "9.2", "10.0", "10.2"};

    public static String getOsVersion() {
        return osVersions[RandomUtils.nextInt(0, osVersions.length)];
    }

    public static String[] phoneInfos = {
            "MI-6,android,6.5,1024*768",
            "MI-7,android,7.2,1366*768",
            "MI-8,android,7.5,2048*1024",
            "MI-9,android,7.7,1024*768",
            "MI-10,android,8.0,1024*768",
            "MI-MIX,android,9.0,1920*1080",
            "REDMI-5,android,6.5,1024*768",
            "REDMI-6,android,7.5,1024*768",
            "REDMI-NOTE,android,7.5,1920*1080",
            "MI-NOTE,android,8.5,1024*768",
            "MATE-10,android,7.5,1024*768",
            "MATE-X,android,7.5,2048*1024",
            "HUAWEI-RY-10,android,7.8,1024*768",
            "HUAWEI-RY-8,android,6.5,1024*768",
            "GALAXY-2,android,6.5,1024*768",
            "GALAXY-3,android,7.5,1024*768",
            "GALAXY-4,android,8.5,2048*1024",
            "GALAXY-5,android,9.5,2048*1024",
            "GALAXY-6,android,8.5,2048*768",
            "GALAXY-7,android,9.5,2048*1024",
            "IPHONE-6,ios,8.8,1024*768",
            "IPHONE-7,ios,8.2,1366*768",
            "IPHONE-7PLUS,ios,8.2,2048*1024",
            "IPHONE-8,ios,8.8,1024*768",
            "IPHONE-8PLUS,ios,8.8,1024*768",
            "IPHONE-9,ios,8.6,1024*768",
            "IPHONE-10,ios,9.2,2048*1024",
            "IPHONE-X,ios,10.0,2048*1024",
            "LEPHONE-5,android,7.5,1366*768",
            "LEPHONE-6,android,8.5,2048*1024",
            "LEPHONE-7,android,9.5,2048*1024",
            "LEPHONE-8,android,8.5,2048*1024",
            "MEIZU-ML5,android,6.5,1366*768",
            "MEIZU-ML6,android,7.5,1366*768",
            "MEIZU-ML7,android,9.5,2048*1024"
    };

    public static String getPhoneInfo() {
        return phoneInfos[RandomUtils.nextInt(0, phoneInfos.length)];
    }

    public static String[] channels = {
            "安智宝",
            "应用汇",
            "OPPO软件商店",
            "VIVO应用商店",
            "小米游戏中心",
            "豌豆荚",
            "TapTap",
            "2345手机助手",
            "天翼空间",
            "GooglePlaystore",
            "MM商场",
            "柠檬助手",
            "沃商店",
            "纽扣助手",
            "爱吾游戏宝盒",
            "酷市场-CoolMar",
            "拇指玩",
            "淘宝手机助手",
            "手机乐园",
            "金山手机助手",
            "最美应用",
            "应用超市",
            "17173游戏",
            "应用超市",
            "安软市场",
            "华为应用市场",
            "车载安卓市场",
            "乐致网",
            "优亿市场",
            "木蚂蚁安卓应用市场",
            "应用宝",
            "手尚手机网",
            "奇珀市场",
            "当贝市场",
            "百度手机助手",
            "91助手",
            "腾讯手机",
            "pp助手",
            "安卓市场",
            "小米应用商店",
    };

    public static String getChannel() {
        return channels[RandomUtils.nextInt(0, channels.length)];
    }


    private static String[] lastNames = {"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
            "何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏", "陶", "姜", "戚", "谢", "邹", "喻", "柏", "水", "窦", "章",
            "云", "苏", "潘", "葛", "奚", "范", "彭", "郎", "鲁", "韦", "昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳",
            "酆", "鲍", "史", "唐", "费", "廉", "岑", "薛", "雷", "贺", "倪", "汤", "滕", "殷", "罗", "毕", "郝", "邬", "安", "常",
            "乐", "于", "时", "傅", "皮", "卞", "齐", "康", "伍", "余", "元", "卜", "顾", "孟", "平", "黄", "和", "穆", "萧", "尹",
            "姚", "邵", "堪", "汪", "祁", "毛", "禹", "狄", "米", "贝", "明", "臧", "计", "伏", "成", "戴", "谈", "宋", "茅", "庞",
            "熊", "纪", "舒", "屈", "项", "祝", "董", "梁",
            "欧阳", "太史", "端木", "上官", "司马", "东方", "独孤", "南宫", "万俟", "闻人", "夏侯", "诸葛", "尉迟", "公羊", "赫连", "澹台",
            "皇甫", "宗政", "濮阳", "公冶", "太叔", "申屠", "公孙", "慕容", "仲孙", "钟离", "长孙", "宇文", "司徒", "鲜于", "司空", "闾丘",
            "子车", "亓官", "司寇", "巫马", "公西", "颛孙", "壤驷", "公良", "漆雕", "乐正", "宰父", "谷梁", "拓跋", "夹谷", "轩辕", "令狐",
            "段干", "百里", "呼延", "东郭", "南门", "羊舌", "微生", "公户", "公玉", "公仪", "梁丘", "公仲", "公上", "公门", "公山", "公坚",
            "左丘", "公伯", "西门", "公祖", "第五", "公乘", "贯丘", "公皙", "南荣", "东里", "东宫", "仲长", "子书", "子桑", "即墨", "达奚",
            "褚师", "吴铭"};

    private static String[] firstNames = {"的", "一", "是", "了", "我", "不", "人", "在", "他", "有", "这", "个", "上", "们", "来", "到", "时", "大", "地", "为",
            "子", "中", "你", "说", "生", "国", "年", "着", "就", "那", "和", "要", "她", "出", "也", "得", "里", "后", "自", "以",
            "会", "家", "可", "下", "而", "过", "天", "去", "能", "对", "小", "多", "然", "于", "心", "学", "么", "之", "都", "好",
            "看", "起", "发", "当", "没", "成", "只", "如", "事", "把", "还", "用", "第", "样", "道", "想", "作", "种", "开", "美",
            "总", "从", "无", "情", "己", "面", "最", "女", "但", "现", "前", "些", "所", "同", "日", "手", "又", "行", "意", "动",
            "方", "期", "它", "头", "经", "长", "儿", "回", "位", "分", "爱", "老", "因", "很", "给", "名", "法", "间", "斯", "知",
            "世", "什", "两", "次", "使", "身", "者", "被", "高", "已", "亲", "其", "进", "此", "话", "常", "与", "活", "正", "感",
            "见", "明", "问", "力", "理", "尔", "点", "文", "几", "定", "本", "公", "特", "做", "外", "孩", "相", "西", "果", "走",
            "将", "月", "十", "实", "向", "声", "车", "全", "信", "重", "三", "机", "工", "物", "气", "每", "并", "别", "真", "打",
            "太", "新", "比", "才", "便", "夫", "再", "书", "部", "水", "像", "眼", "等", "体", "却", "加", "电", "主", "界", "门",
            "利", "海", "受", "听", "表", "德", "少", "克", "代", "员", "许", "稜", "先", "口", "由", "死", "安", "写", "性", "马",
            "光", "白", "或", "住", "难", "望", "教", "命", "花", "结", "乐", "色", "更", "拉", "东", "神", "记", "处", "让", "母",
            "父", "应", "直", "字", "场", "平", "报", "友", "关", "放", "至", "张", "认", "接", "告", "入", "笑", "内", "英", "军",
            "候", "民", "岁", "往", "何", "度", "山", "觉", "路", "带", "万", "男", "边", "风", "解", "叫", "任", "金", "快", "原",
            "吃", "妈", "变", "通", "师", "立", "象", "数", "四", "失", "满", "战", "远", "格", "士", "音", "轻", "目", "条", "呢",
            "病", "始", "达", "深", "完", "今", "提", "求", "清", "王", "化", "空", "业", "思", "切", "怎", "非", "找", "片", "罗",
            "钱", "紶", "吗", "语", "元", "喜", "曾", "离", "飞", "科", "言", "干", "流", "欢", "约", "各", "即", "指", "合", "反",
            "题", "必", "该", "论", "交", "终", "林", "请", "医", "晚", "制", "球", "决", "窢", "传", "画", "保", "读", "运", "及",
            "则", "房", "早", "院", "量", "苦", "火", "布", "品", "近", "坐", "产", "答", "星", "精", "视", "五", "连", "司", "巴",
            "奇", "管", "类", "未", "朋", "且", "婚", "台", "夜", "青", "北", "队", "久", "乎", "越", "观", "落", "尽", "形", "影",
            "红", "爸", "百", "令", "周", "吧", "识", "步", "希", "亚", "术", "留", "市", "半", "热", "送", "兴", "造", "谈", "容",
            "极", "随", "演", "收", "首", "根", "讲", "整", "式", "取", "照", "办", "强", "石", "古", "华", "諣", "拿", "计", "您",
            "装", "似", "足", "双", "妻", "尼", "转", "诉", "米", "称", "丽", "客", "南", "领", "节", "衣", "站", "黑", "刻", "统",
            "断", "福", "城", "故", "历", "惊", "脸", "选", "包", "紧", "争", "另", "建", "维", "绝", "树", "系", "伤", "示", "愿",
            "持", "千", "史", "谁", "准", "联", "妇", "纪", "基", "买", "志", "静", "阿", "诗", "独", "复", "痛", "消", "社", "算",
            "义", "竟", "确", "酒", "需", "单", "治", "卡", "幸", "兰", "念", "举", "仅", "钟", "怕", "共", "毛", "句", "息", "功",
            "官", "待", "究", "跟", "穿", "室", "易", "游", "程", "号", "居", "考", "突", "皮", "哪", "费", "倒", "价", "图", "具",
            "刚", "脑", "永", "歌", "响", "商", "礼", "细", "专", "黄", "块", "脚", "味", "灵", "改", "据", "般", "破", "引", "食",
            "仍", "存", "众", "注", "笔", "甚", "某", "沉", "血", "备", "习", "校", "默", "务", "土", "微", "娘", "须", "试", "怀",
            "料", "调", "广", "蜖", "苏", "显", "赛", "查", "密", "议", "底", "列", "富", "梦", "错", "座", "参", "八", "除", "跑",
            "亮", "假", "印", "设", "线", "温", "虽", "掉", "京", "初", "养", "香", "停", "际", "致", "阳", "纸", "李", "纳", "验",
            "助", "激", "够", "严", "证", "帝", "饭", "忘", "趣", "支", "春", "集", "丈", "木", "研", "班", "普", "导", "顿", "睡",
            "展", "跳", "获", "艺", "六", "波", "察", "群", "皇", "段", "急", "庭", "创", "区", "奥", "器", "谢", "弟", "店", "否",
            "害", "草", "排", "背", "止", "组", "州", "朝", "封", "睛", "板", "角", "况", "曲", "馆", "育", "忙", "质", "河", "续",
            "哥", "呼", "若", "推", "境", "遇", "雨", "标", "姐", "充", "围", "案", "伦", "护", "冷", "警", "贝", "著", "雪", "索",
            "剧", "啊", "船", "险", "烟", "依", "斗", "值", "帮", "汉", "慢", "佛", "肯", "闻", "唱", "沙", "局", "伯", "族", "低",
            "玩", "资", "屋", "击", "速", "顾", "泪", "洲", "团", "圣", "旁", "堂", "兵", "七", "露", "园", "牛", "哭", "旅", "街",
            "劳", "型", "烈", "姑", "陈", "莫", "鱼", "异", "抱", "宝", "权", "鲁", "简", "态", "级", "票", "怪", "寻", "杀", "律",
            "胜", "份", "汽", "右", "洋", "范", "床", "舞", "秘", "午", "登", "楼", "贵", "吸", "责", "例", "追", "较", "职", "属",
            "渐", "左", "录", "丝", "牙", "党", "继", "托", "赶", "章", "智", "冲", "叶", "胡", "吉", "卖", "坚", "喝", "肉", "遗",
            "救", "修", "松", "临", "藏", "担", "戏", "善", "卫", "药", "悲", "敢", "靠", "伊", "村", "戴", "词", "森", "耳", "差",
            "短", "祖", "云", "规", "窗", "散", "迷", "油", "旧", "适", "乡", "架", "恩", "投", "弹", "铁", "博", "雷", "府", "压",
            "超", "负", "勒", "杂", "醒", "洗", "采", "毫", "嘴", "毕", "九", "冰", "既", "状", "乱", "景", "席", "珍", "童", "顶",
            "派", "素", "脱", "农", "疑", "练", "野", "按", "犯", "拍", "征", "坏", "骨", "余", "承", "置", "臓", "彩", "灯", "巨",
            "琴", "免", "环", "姆", "暗", "换", "技", "翻", "束", "增", "忍", "餐", "洛", "塞", "缺", "忆", "判", "欧", "层", "付",
            "阵", "玛", "批", "岛", "项", "狗", "休", "懂", "武", "革", "良", "恶", "恋", "委", "拥", "娜", "妙", "探", "呀", "营",
            "退", "摇", "弄", "桌", "熟", "诺", "宣", "银", "势", "奖", "宫", "忽", "套", "康", "供", "优", "课", "鸟", "喊", "降",
            "夏", "困", "刘", "罪", "亡", "鞋", "健", "模", "败", "伴", "守", "挥", "鲜", "财", "孤", "枪", "禁", "恐", "伙", "杰",
            "迹", "妹", "藸", "遍", "盖", "副", "坦", "牌", "江", "顺", "秋", "萨", "菜", "划", "授", "归", "浪", "听", "凡", "预",
            "奶", "雄", "升", "碃", "编", "典", "袋", "莱", "含", "盛", "济", "蒙", "棋", "端", "腿", "招", "释", "介", "烧", "误",
            "乾", "坤"};

    public static String getChineseName(){
        return lastNames[RandomUtils.nextInt(0,lastNames.length)]+firstNames[RandomUtils.nextInt(0,firstNames.length)];
    }

    public static String getChineseKeyWord(){
        int len1 = RandomUtils.nextInt(2, 5);
        int len2 = RandomUtils.nextInt(0, 5);
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<len1;i++){
            sb.append(firstNames[RandomUtils.nextInt(0,firstNames.length)]);
        }
        for(int i=0;i<len2;i++){
            sb.append(" ");
            sb.append(firstNames[RandomUtils.nextInt(0,firstNames.length)]);
        }
        return sb.toString();
    }

}
